<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

  <title>ENABLE_EXPORTS &mdash; CMake 4.1.1 Documentation</title>

    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=a2c47e09" />
    <link rel="stylesheet" type="text/css" href="../_static/cmake.css?v=4d06bd55" />
    
    <script src="../_static/documentation_options.js?v=e6a937a4"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    
    <link rel="icon" href="../_static/cmake-favicon.ico"/>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="EXCLUDE_FROM_ALL" href="EXCLUDE_FROM_ALL.html" />
    <link rel="prev" title="EchoString" href="EchoString.html" />
 

  </head><body>
    <input id="sidebar-check" type="checkbox" />
    <label id="sidebar-overlay" for="sidebar-check"></label>



    <div class="related relbar1" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="EXCLUDE_FROM_ALL.html" title="EXCLUDE_FROM_ALL"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="EchoString.html" title="EchoString"
             accesskey="P">previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-properties.7.html" accesskey="U">cmake-properties(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">ENABLE_EXPORTS</a></li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <section id="enable-exports">
<span id="prop_tgt:ENABLE_EXPORTS"></span><h1>ENABLE_EXPORTS<a class="headerlink" href="#enable-exports" title="Link to this heading">¶</a></h1>
<p>Specify whether an executable or a shared library exports symbols.</p>
<p>Normally an executable does not export any symbols because it is the
final program.  It is possible for an executable to export symbols to
be used by loadable modules.  When this property is set to true CMake
will allow other targets to &quot;link&quot; to the executable with the
<span class="target" id="index-0-command:target_link_libraries"></span><a class="reference internal" href="../command/target_link_libraries.html#command:target_link_libraries" title="target_link_libraries"><code class="xref cmake cmake-command docutils literal notranslate"><span class="pre">target_link_libraries()</span></code></a> command.  On all platforms a target-level
dependency on the executable is created for targets that link to it.
Handling of the executable on the link lines of the loadable modules
varies by platform:</p>
<ul class="simple">
<li><p>On Windows-based systems (including Cygwin) an &quot;import library&quot; is
created along with the executable to list the exported symbols.
Loadable modules link to the import library to get the symbols.</p></li>
<li><p>On macOS, loadable modules link to the executable itself using the
<code class="docutils literal notranslate"><span class="pre">-bundle_loader</span></code> flag.</p></li>
<li><p>On AIX, a linker &quot;import file&quot; is created along with the executable
to list the exported symbols for import when linking other targets.
Loadable modules link to the import file to get the symbols.</p></li>
<li><p>On other platforms, loadable modules are simply linked without
referencing the executable since the dynamic loader will
automatically bind symbols when the module is loaded.</p></li>
</ul>
<p>This property is initialized by the value of the
<span class="target" id="index-0-variable:CMAKE_EXECUTABLE_ENABLE_EXPORTS"></span><a class="reference internal" href="../variable/CMAKE_EXECUTABLE_ENABLE_EXPORTS.html#variable:CMAKE_EXECUTABLE_ENABLE_EXPORTS" title="CMAKE_EXECUTABLE_ENABLE_EXPORTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_EXECUTABLE_ENABLE_EXPORTS</span></code></a> variable, if it is set when an
executable target is created.  If <span class="target" id="index-1-variable:CMAKE_EXECUTABLE_ENABLE_EXPORTS"></span><a class="reference internal" href="../variable/CMAKE_EXECUTABLE_ENABLE_EXPORTS.html#variable:CMAKE_EXECUTABLE_ENABLE_EXPORTS" title="CMAKE_EXECUTABLE_ENABLE_EXPORTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_EXECUTABLE_ENABLE_EXPORTS</span></code></a>
is not set, the <span class="target" id="index-0-variable:CMAKE_ENABLE_EXPORTS"></span><a class="reference internal" href="../variable/CMAKE_ENABLE_EXPORTS.html#variable:CMAKE_ENABLE_EXPORTS" title="CMAKE_ENABLE_EXPORTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_ENABLE_EXPORTS</span></code></a> variable is used to initialize
the property instead for backward compatibility reasons.
See below for alternative initialization behavior for shared library targets.</p>
<div class="versionadded">
<p><span class="versionmodified added">Added in version 3.27: </span>To link with a shared library on macOS, or to a shared framework on any Apple
platform, a linker import file can be used instead of the actual shared
library. These linker import files are also known as text-based stubs, and
they have a <code class="docutils literal notranslate"><span class="pre">.tbd</span></code> file extension.</p>
<p>The generation of these linker import files, as well as their consumption, is
controlled by this property. When this property is set to true on a shared
library target, CMake will generate a <code class="docutils literal notranslate"><span class="pre">.tbd</span></code> file for the library.
Other targets that link to the shared library target will then use this
<code class="docutils literal notranslate"><span class="pre">.tbd</span></code> file when linking rather than linking to the shared library binary.</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>For backward compatibility reasons, this property will be ignored if the
<span class="target" id="index-0-prop_tgt:XCODE_ATTRIBUTE_&lt;an-attribute&gt;"></span><a class="reference internal" href="XCODE_ATTRIBUTE_an-attribute.html#prop_tgt:XCODE_ATTRIBUTE_&lt;an-attribute&gt;" title="XCODE_ATTRIBUTE_&lt;an-attribute&gt;"><code class="xref cmake cmake-prop_tgt docutils literal notranslate"><span class="pre">XCODE_ATTRIBUTE_GENERATE_TEXT_BASED_STUBS</span></code></a>
target property or the
<span class="target" id="index-0-variable:CMAKE_XCODE_ATTRIBUTE_&lt;an-attribute&gt;"></span><a class="reference internal" href="../variable/CMAKE_XCODE_ATTRIBUTE_an-attribute.html#variable:CMAKE_XCODE_ATTRIBUTE_&lt;an-attribute&gt;" title="CMAKE_XCODE_ATTRIBUTE_&lt;an-attribute&gt;"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_XCODE_ATTRIBUTE_GENERATE_TEXT_BASED_STUBS</span></code></a>
variable is set to false.</p>
</div>
<p>For shared library targets, this property is initialized by the value of the
<span class="target" id="index-0-variable:CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS"></span><a class="reference internal" href="../variable/CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS.html#variable:CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS" title="CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS"><code class="xref cmake cmake-variable docutils literal notranslate"><span class="pre">CMAKE_SHARED_LIBRARY_ENABLE_EXPORTS</span></code></a> variable, if it is set when
the target is created.</p>
</div>
</section>


            <div class="clearer"></div>
          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="EchoString.html"
                          title="previous chapter">EchoString</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="EXCLUDE_FROM_ALL.html"
                          title="next chapter">EXCLUDE_FROM_ALL</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/prop_tgt/ENABLE_EXPORTS.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="related" role="navigation" aria-label="Related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="../genindex.html" title="General Index"
             >index</a></li>
        <li class="right" >
          <a href="EXCLUDE_FROM_ALL.html" title="EXCLUDE_FROM_ALL"
             >next</a> |</li>
        <li class="right" >
          <a href="EchoString.html" title="EchoString"
             >previous</a> |</li>
  <li>
    <label class="sidebar-toggle" for="sidebar-check"></label>
  </li>
  <li class="rootlink">
    <img src="../_static/cmake-logo-16.png" width="16" height="16" alt=""/>
    <a href="https://cmake.org/">CMake 4.1.1</a>
    <span class="reldelim1"> &#187;</span>
  </li>
  <li>
    <a href="../index.html">Documentation</a> &#187;
  </li>

          <li class="nav-item nav-item-1"><a href="../manual/cmake-properties.7.html" >cmake-properties(7)</a> &#187;</li>
        <li class="nav-item nav-item-this"><a href="">ENABLE_EXPORTS</a></li> 
      </ul>
    </div>

    <div class="footer" role="contentinfo">
    &#169; Copyright 2000-2025 Kitware, Inc. and Contributors.
      Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 8.1.3.
    </div>
<script type="text/javascript">
(function() {
  "use strict";
  const hide = () => document.getElementById("sidebar-check").checked = false;
  addEventListener("keydown", e => (e.key === "Escape") && hide());
  addEventListener("click", e => (e.target.tagName === "A") && hide());
  addEventListener("hashchange", hide)
})();
</script>
  </body>
</html>